/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.controller;

import com.context.conexion.EnahoConexion;
import com.model.domain.persona.Encuestador;
import com.model.domain.persona.Hogar;
import com.model.domain.enaho.reporte.ReporteRecojoDatosDetalle;
import com.model.domain.enaho.reporte.ReporteRecojoDatosResumen;
import com.model.domain.tiempo.Mes;
import com.model.domain.tiempo.Periodo;
import com.model.domain.ubicacion.Conglomerado;
import com.model.domain.ubicacion.Odei;
import com.model.domain.ubicacion.Vivienda;
import com.model.domain.ubicacion.ViviendaMarco;
import com.model.service.ReporteTransferenciaService;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Rdelacruz
 */
public class ReporteTransferenciaController 
extends AbstractController
{
    
     public void verRecojoDatosResumen(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //buscarRecojoDatosResumen(request, response);
         
        ReporteTransferenciaService service = (ReporteTransferenciaService)this.getService();
        
        Connection con = null;
        try {
            con = EnahoConexion.getConexion();
            List<Odei> odeis = service.getListaOdeis(con);
            List<Mes> meses = service.getListaMeses(con);
            List<Periodo> periodos = service.getListaPeriodos(con);   
            List<Conglomerado> conglomerados = service.getListaConglomerados(con);
            request.setAttribute("odeis", odeis);
            request.setAttribute("meses", meses);            
            request.setAttribute("periodos", periodos);
            request.setAttribute("conglomerados", conglomerados);
            request.setAttribute("rsMonitor", new ReporteRecojoDatosResumen());
        }
        finally {
            if(con!=null) con.close();
        }
        
        request.getRequestDispatcher("/pagweb/transferencia/reportes/reporte_datos_resumen_01.jsp").forward(request, response);
    }

    public void buscarRecojoDatosResumen(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ReporteTransferenciaService service = (ReporteTransferenciaService)this.getService();
        
        Conglomerado filtro = new Conglomerado();
        
        Odei odei = new Odei();
        odei.setCodigo(request.getParameter("odei"));
        filtro.setOdei(odei);
        
        Mes mes  = new Mes();
        mes.setCodigo(request.getParameter("mes"));
        filtro.setMes(mes);
        
        Periodo p = new Periodo();
        p.setCodigo(request.getParameter("periodo"));
        filtro.setPeriodo(p);
        
        filtro.setCodigo(request.getParameter("conglomerado"));
        
        request.setAttribute("filtro", filtro);
        
        Connection con = null;
        try {
            con = EnahoConexion.getConexion();
            List<Odei> odeis = service.getListaOdeis(con);
            List<Mes> meses = service.getListaMeses(con);
            List<Periodo> periodos = service.getListaPeriodos(con);            
            List<Conglomerado> conglomerados = service.getListaConglomerados(con);
            request.setAttribute("odeis", odeis);
            request.setAttribute("meses", meses);            
            request.setAttribute("periodos", periodos);            
            request.setAttribute("conglomerados", conglomerados);
            request.setAttribute("rsMonitor", service.getReporteRecojoDatosResumen(con,filtro,odeis,meses, periodos));
        }
        finally {
            if(con!=null) con.close();
        }
        
        request.getRequestDispatcher("/pagweb/transferencia/reportes/reporte_datos_resumen_01.jsp").forward(request, response);
    }
    
    public void verRecojoDatosDetalle(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ReporteTransferenciaService service = (ReporteTransferenciaService)this.getService();
              
        Connection con = null;
        try {
            con = EnahoConexion.getConexion();
            List<Odei> odeis = service.getListaOdeis(con);
            List<Mes> meses = service.getListaMeses(con);
            List<Periodo> periodos = service.getListaPeriodos(con);            
            List<Conglomerado> conglomerados = service.getListaConglomerados(con);
            List<Encuestador> encuestadores = service.getListaEncuestadores(con);
            
            request.setAttribute("odeis", odeis);
            request.setAttribute("meses", meses);            
            request.setAttribute("periodos", periodos);
            request.setAttribute("conglomerados", conglomerados);
            request.setAttribute("encuestadores", encuestadores);
            
            //El objeto reporte, pero sin filas
            ReporteRecojoDatosDetalle rep =  new ReporteRecojoDatosDetalle();            
            request.setAttribute("rsMonitor", rep);
        }
        finally {
            if(con!=null) con.close();
        }
        
        request.getRequestDispatcher("/pagweb/transferencia/reportes/reporte_datos_detalle_01.jsp").forward(request, response);
    }

    public void buscarRecojoDatosDetalle(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ReporteTransferenciaService service = (ReporteTransferenciaService)this.getService();
              
        //1. Convirtiendo el request a objeto
        Conglomerado c = new Conglomerado();                
        Odei odei = new Odei();
        odei.setCodigo(request.getParameter("odei"));
        c.setOdei(odei);
        
        Mes mes = new Mes();
        mes.setCodigo(request.getParameter("mes"));
        c.setMes(mes);
        
        Periodo p = new Periodo();
        p.setCodigo(request.getParameter("periodo"));
        c.setPeriodo(p);
        
        c.setCodigo(request.getParameter("conglomerado"));       
        
        Vivienda v = new Vivienda();
        v.setConglomerado(c);
        
        Hogar hogar = new Hogar();
        hogar.setVivienda(v);
        
        Encuestador e = new Encuestador();
        e.setDni(request.getParameter("encuestador"));
        hogar.setEncuestador(e);        
        
        
        //2.Consultando
        Connection con = null;
        try {
            con = EnahoConexion.getConexion();
            List<Odei> odeis = service.getListaOdeis(con);
            List<Mes> meses = service.getListaMeses(con);
            List<Periodo> periodos = service.getListaPeriodos(con);            
            List<Conglomerado> conglomerados = service.getListaConglomerados(con);
            List<Encuestador> encuestadores = service.getListaEncuestadores(con);
            request.setAttribute("odeis", odeis);
            request.setAttribute("meses", meses);            
            request.setAttribute("periodos", periodos);
            request.setAttribute("conglomerados", conglomerados);
            request.setAttribute("encuestadores", encuestadores);
            
            ReporteRecojoDatosDetalle rep =  service.getReporteRecojoDatosDetalle(con,
                    hogar,
                    odeis,meses, periodos,
                    conglomerados,encuestadores);
            
            request.setAttribute("rsMonitor", rep);
        }
        finally {
            if(con!=null) con.close();
        }
        
        request.setAttribute("filtro", hogar);
        
        request.getRequestDispatcher("/pagweb/transferencia/reportes/reporte_datos_detalle_01.jsp").forward(request, response);
    }

    public void verGeoreferenciacionViviendas(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ReporteTransferenciaService service = (ReporteTransferenciaService)this.getService();
        
        //request.setAttribute("filtro", null);//"" = Todos
         
        Connection con = null;
        try {
            con = EnahoConexion.getConexion();
            List<Odei> odeis = service.getListaOdeis(con);
            request.setAttribute("odeis", odeis);
            
            List<Conglomerado> conglomerados = service.getListaConglomerados(con);
            request.setAttribute("conglomerados", conglomerados);
            
            List<Vivienda> viviendas = new ArrayList<Vivienda>();
            request.setAttribute("rsMonitor", viviendas);
        }
        finally {
            if(con!=null) con.close();
        }     
                
        request.getRequestDispatcher("/pagweb/transferencia/reportes/reporte_geo_01.jsp").forward(request, response);
    }
    
    public void buscarGeoreferenciacionViviendas(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ReporteTransferenciaService service = (ReporteTransferenciaService)this.getService();
        
        
        Conglomerado filtro = new Conglomerado();        
        filtro.setCodigo(request.getParameter("conglomerado"));        
        
        Odei odei = new Odei();
        odei.setCodigo(request.getParameter("odei"));
        filtro.setOdei(odei);
        
        request.setAttribute("filtro", filtro);
        
        
        
        Connection con = null;
        try {
            con = EnahoConexion.getConexion();
            List<Odei> odeis = service.getListaOdeis(con);
            request.setAttribute("odeis", odeis);
            
            List<Conglomerado> conglomerados = service.getListaConglomerados(con);
            request.setAttribute("conglomerados", conglomerados);
            
            List<ViviendaMarco> viviendas = service.getListaViviendasMarcoParaGeoreferenciacion(con,odeis,filtro);
            request.setAttribute("rsMonitor", viviendas);
        }
        finally {
            if(con!=null) con.close();
        }
        
        
        request.getRequestDispatcher("/pagweb/transferencia/reportes/reporte_geo_01.jsp").forward(request, response);
    }
    
  
    /*
    public void verEnviosViviendas(HttpServletRequest request, HttpServletResponse response) throws Exception {
       
    }
    
    public void buscarEnviosViviendas(HttpServletRequest request, HttpServletResponse response) throws Exception {
        
    }    
    */
}
